/*
 * 1.00 2012/09/27
 *
 * Copyright (c) 2012 Motch_bs
 * All rights reserved.
 *
 * このソフトウェアは，Motch_bsに所有される機密情報である。
 * これらの機密情報を漏洩してはならず，Motch_bs の意図する
 * 認可の元においてこれを使用すべし。
 */
package jp.co.ufp.sevendaystask_free.logics;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import jp.co.ufp.sevendaystask_free.Main;
import jp.co.ufp.sevendaystask_free.constants.C;
import jp.co.ufp.sevendaystask_free.forms.QueryForm;
import jp.co.ufp.sevendaystask_free.storage.QueryManager;

/**
 * @author Motch_bs
 * 
 */
public class Logic015 {

    /** リスナー登録元クラス */
    private Main main;

    /** データベースヘルパー */
    private QueryManager queryManager;

    /**
     * @param main
     * @param queryManager
     */
    public Logic015(Main main, QueryManager queryManager) {
	super();
	this.main = main;
	this.queryManager = queryManager;
    }

    /**
     * 初期化
     */
    public void initializing() {

    }

    /**
     * 対象時刻のデータを取得する
     * 
     * @param pTargetWeekDay
     * @return
     */
    public Cursor find(
	SQLiteDatabase database,
	String dataid) {
	// 列を定義
	String[] columns = new String[] {
	    C.TASKID,
	    C.WEEKDAY,
	    C.TIME_START,
	    C.TIME_END,
	    C.TASK_TITLE,
	    C.TASK_MEMO,
	    C.TASK_COLOR
	};
	// where句
	String selection = C.TASKID + " = ?";
	// where句の値
	String[] selectionArgs = {
	    dataid
	};
	// データを取得
	Cursor cursor = database.query(
	    C.TABLE, columns, selection, selectionArgs, null, null, "TIME_START," + C.TASKID);
	return cursor;
    }

    /**
     * 対象データを取得し、インテントへセットする。
     * 
     * @param dataid
     * @return
     */
    public Intent getIntentFromDB(
	String dataid) {
	//
	String timeStart = null;
	String timeEnd = null;
	String taskTitle = null;
	String taskMemo = null;
	int taskColor = -1;
	// データベースをオープンする
	queryManager = new QueryManager(main);
	SQLiteDatabase database = queryManager.getWritableDatabase();
	Cursor cursor = find(database, dataid);
	// カーソルを先頭行へ
	cursor.moveToFirst();
	int maxSize = cursor.getCount();
	for (int i = 0; i < maxSize; i++) {
	    timeStart = cursor.getString(2);
	    timeEnd = cursor.getString(3);
	    taskTitle = cursor.getString(4);
	    taskMemo = cursor.getString(5);
	    taskColor = cursor.getInt(6);
	}
	cursor.close();
	database.close();
	Intent intntEdit = new Intent(main, QueryForm.class);
	intntEdit.putExtra(C.MODE, C.MODE_UPDATE);
	intntEdit.putExtra(C.TASKID, Integer.valueOf(dataid).intValue());
	intntEdit.putExtra(C.POSITION_WEEK, main.position_week);
	intntEdit.putExtra(C.TIME_START, timeStart);
	intntEdit.putExtra(C.TIME_END, timeEnd);
	intntEdit.putExtra(C.TASK_TITLE, taskTitle);
	intntEdit.putExtra(C.TASK_MEMO, taskMemo);
	intntEdit.putExtra(C.TASK_COLOR, taskColor);
	return intntEdit;
    }
}
